<?php

/**
 * This is the model class for table "{{_model2serv}}".
 *
 * The followings are the available columns in table '{{_model2serv}}':
 * @property string $linkId
 * @property string $modelId
 * @property string $serviceId
 * @property string $blockNo
 * @property integer $sort
 */
class Model2servMaksud extends CActiveRecord
{

	/**
	 * @return string the associated database table name
	 */
	public function tableName()
	{
		return '{{_model2serv}}';
	}

	public function getDbConnection()
	{
		return Yii::app()->dbDest;
	}

	/**
	 * @return array validation rules for model attributes.
	 */
	public function rules()
	{
		// NOTE: you should only define rules for those attributes that
		// will receive user inputs.
		return array(
			array( 'modelId', 'required' ),
			array( 'modelId', 'unique', 'on' => 'create' ),
			array( 'sort', 'numerical', 'integerOnly' => true ),
			array( 'modelId, serviceId, blockNo', 'length', 'max' => 10 ),
			// The following rule is used by search().
			// @todo Please remove those attributes that should not be searched.
			array( 'linkId, modelId, serviceId, blockNo, sort', 'safe', 'on' => 'search' ),
		);
	}

	/**
	 * @return array relational rules.
	 */
	public function relations()
	{
		// NOTE: you may need to adjust the relation name and the related
		// class name for the relations automatically generated below.
		return array(
			'models' => array( self::BELONGS_TO, 'Page', 'modelId' ),
		);
	}

	/**
	 * @return array customized attribute labels (name=>label)
	 */
	public function attributeLabels()
	{
		return array(
			'linkId' => 'Link',
			'modelId' => 'Model',
			'serviceId' => 'Service',
			'blockNo' => 'Block No',
			'sort' => 'Sort',
		);
	}

	public function getModels()
	{
		$query = "SELECT * FROM {{tree}} WHERE \"pageType\" = 'model'";
		$models = Yii::app()->db->createCommand( $query )->queryAll( true );
		foreach( $models as $model )
		{
			$array[ $model[ 'pageId' ] ] = $model[ 'pageTitle' ];
		}
		return $array;
	}

	/**
	 * Retrieves a list of models based on the current search/filter conditions.
	 *
	 * Typical usecase:
	 * - Initialize the model fields with values from filter form.
	 * - Execute this method to get CActiveDataProvider instance which will filter
	 * models according to data in model fields.
	 * - Pass data provider to CGridView, CListView or any similar widget.
	 *
	 * @return CActiveDataProvider the data provider that can return the models
	 * based on the search/filter conditions.
	 */
	public function search()
	{
		// @todo Please modify the following code to remove attributes that should not be searched.

		$criteria = new CDbCriteria;
		//$criteria->group = 'modelId';

		$criteria->compare( '"linkId"', $this->linkId, true );
		$criteria->compare( '"modelId"', $this->modelId, true );
		$criteria->compare( '"serviceId"', $this->serviceId, true );
		$criteria->compare( '"blockNo"', $this->blockNo, true );
		$criteria->compare( '"sort"', $this->sort );

		return new CActiveDataProvider( $this, array(
			'criteria' => $criteria,
		) );
	}

	/**
	 * Returns the static model of the specified AR class.
	 * Please note that you should have this exact method in all your CActiveRecord descendants!
	 * @param string $className active record class name.
	 * @return Model2serv the static model class
	 */
	public static function model( $className = __CLASS__ )
	{
		return parent::model( $className );
	}

	public function beforeSave()
	{
		if( parent::beforeSave() )
		{
			return true;
		}
		return FALSE;
	}

}
